#include <bits/stdc++.h>

using uint=unsigned int;
using ll=long long;
using ull=unsigned long long;
using i128=__int128;

const int N=1e6+5;

bool check(std::vector<int> sum,int mid,int x,int n){
    for(int i=1;i<n-mid+1;i++){
        if(sum[i+mid-1]-sum[i-1]<2*x){
            return false;
        }
    }
    return true;
}

void Solve(){
    int n,x;
    std::cin>>n>>x;
    std::vector<int> h(n);
    std::vector<int> sum(n,0);
    for(int i=1;i<n;i++){
        std::cin>>h[i];
        sum[i]=sum[i-1]+h[i];
    }
    int l=1,r=n;
    while(l<r){
        int mid=l+(r-l)/2;
        if(check(sum,mid,x,n)){
            r=mid;
        }else{
            l=mid+1;
        }
    }
    std::cout<<l<<std::endl;
    return;
}

int main(){
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr); std::cout.tie(nullptr);
    Solve();

    return 0;
}
// 题目：青蛙过河

// 描述：
// 小青蛙住在河边，它每天都要到河对岸去上学。河里有一些石头排成一条直线，青蛙必须从这些石头上到对岸。不过，每块石头都有一定的高度。
// 青蛙每次从一块石头上起跳，这块石头的高度就会下降1。当石头下降为0时，青蛙就不能再跳到这块石头上。青蛙有一个跳跃能力y，每次可以跳过y的距离。
// 青蛙要去上x天的课，问青蛙的跳跃能力至少是多少，才能上完这x天课。
// 输入格式
// 第一行，两个数n，x，分别表示河的宽度和青蛙需要上学的天数。1<=n<=10^5, 1<=x<=10^9。
// 第二行，n-1个非负整数H1, H2, H3, ... 。Hi表示河中离河岸相距i的石头的高度。Hi=0表示该处没有石头。0<=hi<=10^4。
// 输出格式
// 一个数，表示答案。
// 输入样例
// 5 1
// 1 0 1 0
// 输出样例
// 4